1. Field of the Invention
This invention relates to queue management and more particularly relates to an apparatus, system, and method to prevent queue stalling.
2. Description of the Related Art
In distributed computing environments, application hosts typically communicate with a storage controller to store application data remotely. Centralized data storage allows for consolidated backup and restore processes, which generally improve data reliability and accessibility. Additionally, a larger amount of data can typically be stored on several storage volumes associated with a typical storage controller.
In such systems, a single storage controller manages storage of data for multiple application hosts. The various application hosts may communicate with the storage controller via various physical paths. As used herein, the term “physical path” includes a series of hardware devices, cables, wireless connections, and the like for communication of physical data signals from a first device to a second device. For example, a first application server may communicate with a storage controller via multiple router and cable connections in a data network. A second application server, located remotely from the first application server may communicate with the storage controller via an entirely separate set of router and cable connections. Thus, in such systems, there are generally multiple physical paths to the same storage controller.
Physical paths are often described by logical paths. As used herein, the term “logical path” means a virtual representation of the physical path, including a series of device addresses and/or names that define a physical path between a first device and a second device. The logical path may be referenced by a first device to determine a series of devices through which to communicate a data signal to a second device.
In a typical network, an application server may send an access request or Input/Output (I/O) request to a storage controller in order to establish a connection for accessing data on a storage volume managed by the storage controller. However, in a large system, the storage controller may receive multiple requests from various different application servers at substantially the same time, or at least while the storage server is still busy processing a request that was previously received. In this type of situation, the storage controller typically establishes a queue for managing the multiple access requests.
The queue is generally characterized as an array of Task Control Blocks (TCBs), where each TCB is a data structure containing data that characterizes the request. Each TCB often contains a pointer to a logical path associated with the application server that generated the access request. The logical path is typically represented by a data structure that is stored on the storage controller. The data structure defining the logical path between the application server and the storage controller is typically generated automatically during a handshake process between the application server and the storage controller that takes place when the application server is booting up. The logical path data structure generally simplifies subsequent communications between the application server and the storage controller.
One problem that commonly arises is that the execution of a queue request is stalled by a connection failure between the application server and the storage controller. In this case, the entire queue of requests is typically stalled or jammed by the failure. The failure typically arises from an error reading the logical path information, a physical connection failure, or the like. In one specific example, a hard failure may be caused by an unplugged cable along one of the physical paths.
Although the example of application server and storage controller has been described in this description for illustrative purposes only, it should remain clear that this disclosure may be applicable to various other devices and combinations of devices. This background section is not intended to limit the scope of the present invention in any way, nor is the background intended to provide any objects, motivations, or limiting features of the claimed subject matter. Rather, the background is intended to provide a single example for contextual simplification of the description, and to improve the reader's ability to comprehend the specification.